package com.kai.mqtt.statistics;


import com.kai.mqtt.data.response.LatestDataResponse;

import java.util.List;

/**
 * @author weijk
 * @since 2024/7/1
 */
public interface IStatisticsService {

    /**
     * 获取流入消息并重置为 0
     *
     * @return 流入消息
     */
    Integer getMsgInflow();

    /**
     * 获取流出消息并重置为 0
     *
     * @return 流出消息
     */
    Integer getMsgOutflow();

    /**
     * 增加流入消息
     */
    void incrementMsgInflow();

    /**
     * 增加流出消息
     */
    void incrementMsgOutflow();

    /**
     * 保存新数据
     *
     * @param latestDataResponse 新数据
     */
    void put(LatestDataResponse latestDataResponse);

    /**
     * 获取最新一条数据
     *
     * @return 新数据
     */
    LatestDataResponse getLatestData();

    /**
     * 获取最新时间段内数据列表
     *
     * @param latest 最近时间（秒）
     * @return 数据列表
     */
    List<LatestDataResponse> listLatestData(Integer latest);
}
